package gameComponents;

public abstract class Movimiento {

	private Jugador jugador;
	private Tablero tablero;

	public Jugador getJugador() {
		return jugador;
	}

	public void setJugador(Jugador jugador) {
		this.jugador = jugador;
	}

	public Tablero getTablero() {
		return tablero;
	}

	public void setTablero(Tablero tablero) {
		this.tablero = tablero;
	}

	public void conquistarTesoroSiLoHay(){
//		if(this.getJugador().getCeldaActual().esIgual(this.getTablero().celdaEn(this.getJugador().getCeldaActual().getX(), this.getJugador().getCeldaActual().getY()))){
//			this.getTablero().getTesoros().remove(this.getTablero().tesoroDeCelda(this.getJugador().getCeldaActual().getX(), this.getJugador().getCeldaActual().getY()));
//			System.out.println(this.getJugador().getNombre() + " conquisto tesoro en " + this.getJugador().getCeldaActual().getX() + "," + this.getJugador().getCeldaActual().getY());
//			this.verificarFinJuego();
//		}
		if(this.getTablero().hayTesoroEnCelda(this.getJugador().getCeldaActual())){
			this.getTablero().getTesoros().remove(this.getTablero().tesoroDeCelda(this.getJugador().getCeldaActual().getX(), this.getJugador().getCeldaActual().getY()));
			System.out.println(this.getJugador().getNombre() + " conquisto tesoro en " + this.getJugador().getCeldaActual().getX() + "," + this.getJugador().getCeldaActual().getY());
			this.verificarFinJuego();
		}
	}
	
	public Movimiento(Tablero t){
		this.setTablero(t);
	}
	
	public void verificarFinJuego(){
		if(this.getTablero().terminoJuego()){
			if(this.getTablero().tesorosRestantesEquipo("EquipoArriba") == 0){
				System.out.println("Termino el juego! EquipoArriba gana!!");
			} else{
				System.out.println("Termino el juego! EquipoAbajo gana!!");
			}
		}
	}
	
	public abstract void ejecutar() throws InterruptedException;
	
	
}
